package com.example.exceldemo.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import lombok.Data;

import java.util.Date;

/**
 * EasyPoi 为了方便我们操作，实现了实体和Excel的对应,model--row,filed--col，这样利用注解，我们就可以轻轻松松实现excel的导入导出
 *
 * @Excel 作用到filed上面, 是对Excel一列的一个描述
 * **@ExcelCollection ** 表示一个集合,主要针对一对多的导出,比如一个老师对应多个科目,科目就可以用集合表示
 * @ExcelEntity 表示一个继续深入导出的实体, 但他没有太多的实际意义, 只是告诉系统这个对象里面同样有导出的字段
 * @ExcelIgnore 这个字段被忽略跳过这个导出
 * @ExcelTarget 这个是作用于最外层的对象, 描述这个对象的id, 以便支持一个对象可以针对不同导出做出不同处理
 */
@Data
@ExcelTarget("userEntity")
public class UserEntity {
    @Excel(name = "姓名",orderNum = "1",width = 20 )
    private String name;
    @Excel(name = "年龄",orderNum = "2",width = 20 ,type = 10)
    private  Integer age;
    //replace 值得替换 导出是{a_id,b_id} 导入反过来
    @Excel(name = "性别",orderNum = "3",width = 20,replace = {"男_1","女_2"})
    private String sex;
    @Excel(name = "生日",orderNum = "4",width = 20,format = "yyyy-MM-dd")
    private Date birthday;
    //导出对象中含有对象的数据
    @ExcelEntity(name = "用户基本信息")
    private UserBaseInfo userBaseInfo;
}